str和str[i]有什么区别?

来源:百度知道 编辑:UC知道 时间:2024/05/14 10:29:36
函数的功能是:截取字符串str1中的前n个字符放在字符串str2中。
# include <stdio.h>
# include <conio.h>
# define LEN 80
main()
{ char str1[LEN],str2[LEN];
int n,i;
clrscr() ;
printf("Enter the string:\n");
gets(str1);
printf("Enter the position of the string deleted:");
scanf("%d",n);
for(i=0;i<n;i++)
str2[i]=str1[i];
str2[i]='\0';
printf("The new string is:%s\n",str2);
}
最后的输出为什么不能是:
for(i=0;i<n;i++)
printf("The new string is:%s\n",str2[i]);
如果*p2=str2;
for(i=0;i<10;i++)
*p2++=*(str1+i);
*p2='\0';
for(i=0;i<10;i++)
printf("the new string is:%c\n",*p2[i]);
为什么也不行?

str代表串,准确的说是串的起始地址,串以字符\0结束。
str[i]代表串中的字符。

倘若用指针,正确的流程应该如下:
p2=str2;
for(i=0;i<10;i++)
*p2++=*(str1+i);
*p2='\0';
p2=str2;//指针回位
printf("the new string is:\n");
for(i=0;i<10;i++)
printf("%c",p2[i]);

str是变量名 str[i]是数组变量名
我是学c语言的!!!

str是单一的变量。而str[i]是一个数组,如:
string str; //是一个变量
string str[10]; //是一个数组,相当于10个str